package com.cskaoyan.wordmemorize.common.aspect.operate;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD })
public @interface OperateLog {

    /**
     * 描述操作的数据类型，比如: 书籍，词汇，角色，权限
     */
    String dataType();

    /**
     * 描述操作的类型:
     * 1. 新增
     * 2. 单个删除
     * 3. 批量删除
     * 4. 修改
     * 5. 修改状态
     * 6. excel导入
     */
    int operateType();

    /**
     * 操作描述，用于记录具体的操作内容
     */
    String description() default "";

    /**
     * 是否记录请求参数到data字段
     */
    boolean logRequestParams() default true;

    /**
     * 是否记录返回值到data字段
     */
    boolean logReturnValue() default false;
}
